/* USER CODE BEGIN Header */
/**
  ******************************************************************************
  * @file           : main.h
  * @brief          : Header for main.c file.
  *                   This file contains the common defines of the application.
  ******************************************************************************
  * @attention
  *
  * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
  * All rights reserved.</center></h2>
  *
  * This software component is licensed by ST under BSD 3-Clause license,
  * the "License"; You may not use this file except in compliance with the
  * License. You may obtain a copy of the License at:
  *                        opensource.org/licenses/BSD-3-Clause
  *
  ******************************************************************************
  */
/* USER CODE END Header */

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __MAIN_H
#define __MAIN_H

#ifdef __cplusplus
extern "C" {
#endif

/* Includes ------------------------------------------------------------------*/
#include "stm32f1xx_hal.h"
#include "stm32f1xx_hal.h"

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */

/* USER CODE END Includes */

/* Exported types ------------------------------------------------------------*/
/* USER CODE BEGIN ET */

/* USER CODE END ET */

/* Exported constants --------------------------------------------------------*/
/* USER CODE BEGIN EC */

/* USER CODE END EC */

/* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */

/* USER CODE END EM */

/* Exported functions prototypes ---------------------------------------------*/
void Error_Handler(void);

/* USER CODE BEGIN EFP */

/* USER CODE END EFP */

/* Private defines -----------------------------------------------------------*/
#define LED0_Pin GPIO_PIN_5
#define LED0_GPIO_Port GPIOE
#define DCMA1_Pin GPIO_PIN_0
#define DCMA1_GPIO_Port GPIOF
#define DCMA2_Pin GPIO_PIN_1
#define DCMA2_GPIO_Port GPIOF
#define DCMB1_Pin GPIO_PIN_2
#define DCMB1_GPIO_Port GPIOF
#define DCMB2_Pin GPIO_PIN_3
#define DCMB2_GPIO_Port GPIOF
#define LIGHT_SENSOR_Pin GPIO_PIN_8
#define LIGHT_SENSOR_GPIO_Port GPIOF
#define LED_BL_Pin GPIO_PIN_0
#define LED_BL_GPIO_Port GPIOB
#define DHT22_Pin GPIO_PIN_13
#define DHT22_GPIO_Port GPIOF
#define SDA1_Pin GPIO_PIN_10
#define SDA1_GPIO_Port GPIOB
#define SCL1_Pin GPIO_PIN_11
#define SCL1_GPIO_Port GPIOB
#define GRE_Pin GPIO_PIN_11
#define GRE_GPIO_Port GPIOD
#define BLU_Pin GPIO_PIN_12
#define BLU_GPIO_Port GPIOD
#define RED_Pin GPIO_PIN_13
#define RED_GPIO_Port GPIOD
#define SDA2_Pin GPIO_PIN_10
#define SDA2_GPIO_Port GPIOC
#define SCL2_Pin GPIO_PIN_11
#define SCL2_GPIO_Port GPIOC
#define RS485_Pin GPIO_PIN_7
#define RS485_GPIO_Port GPIOD
#define LED1_Pin GPIO_PIN_5
#define LED1_GPIO_Port GPIOB
#define SCL_Pin GPIO_PIN_6
#define SCL_GPIO_Port GPIOB
#define SDA_Pin GPIO_PIN_7
#define SDA_GPIO_Port GPIOB
#define BEEP_Pin GPIO_PIN_8
#define BEEP_GPIO_Port GPIOB
/* USER CODE BEGIN Private defines */
#define STEP1_Pin GPIO_PIN_3
#define STEP2_Pin GPIO_PIN_4
#define STEP3_Pin GPIO_PIN_5
#define STEP4_Pin GPIO_PIN_6
#define STEP1_PORT GPIOG
#define STEP2_PORT GPIOG
#define STEP3_PORT GPIOG
#define STEP4_PORT GPIOG



typedef const uint32_t uc32;  
typedef const uint16_t uc16;  
typedef const uint8_t uc8; 

typedef volatile uint32_t vu32;
typedef volatile uint16_t vu16;
typedef volatile uint8_t  vu8;

typedef volatile int32_t  vs32;
typedef volatile int16_t  vs16;
typedef volatile int8_t   vs8;

typedef uint32_t  u32;
typedef uint16_t u16;
typedef uint8_t  u8;

typedef unsigned char uchar;
typedef unsigned int uint ;

#define GRE_GPIO(a)	if (a)	\
							HAL_GPIO_WritePin(GPIOD,GPIO_PIN_11,GPIO_PIN_SET);\
							else		\
							HAL_GPIO_WritePin(GPIOD,GPIO_PIN_11,GPIO_PIN_RESET)
							
							
#define BLU_GPIO(a)	if (a)	\
							HAL_GPIO_WritePin(GPIOD,GPIO_PIN_12,GPIO_PIN_SET);\
							else		\
							HAL_GPIO_WritePin(GPIOD,GPIO_PIN_12,GPIO_PIN_RESET)
							
#define RED_GPIO(a)	if (a)	\
							HAL_GPIO_WritePin(GPIOD,GPIO_PIN_13,GPIO_PIN_SET);\
							else		\
							HAL_GPIO_WritePin(GPIOD,GPIO_PIN_13,GPIO_PIN_RESET)
							
#define BEEP_GPIO(a)	if (a)	\
							HAL_GPIO_WritePin(BEEP_GPIO_Port,BEEP_Pin,GPIO_PIN_SET);\
							else		\
							HAL_GPIO_WritePin(BEEP_GPIO_Port,BEEPPin,GPIO_PIN_RESET)
							
#define LED0_GPIO(a)	if (a)	\
							HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,GPIO_PIN_SET);\
							else		\
							HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,GPIO_PIN_RESET)
							
#define LED1_GPIO(a)	if (a)	\
							HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_SET);\
							else		\
							HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_RESET)
							
#define LIGHT_SONSER_GPIO(a)	if (a)	\
							HAL_GPIO_WritePin(LIGHT_SONSER_GPIO_Port,LIGHT_SONSER_Pin,GPIO_PIN_SET);\
							else		\
							HAL_GPIO_WritePin(LIGHT_SONSER_GPIO_Port,LIGHT_SONSER_Pin,GPIO_PIN_RESET)
							
#define DCMA1_GPIO(a)	if (a)	\
							HAL_GPIO_WritePin(DCMA1_GPIO_Port,DCMA1_Pin,GPIO_PIN_SET);\
							else		\
							HAL_GPIO_WritePin(DCMA1_GPIO_Port,DCMA1_Pin,GPIO_PIN_RESET)
							
#define DCMA2_GPIO(a)	if (a)	\
							HAL_GPIO_WritePin(DCMA2_GPIO_Port,DCMA2_Pin,GPIO_PIN_SET);\
							else		\
							HAL_GPIO_WritePin(DCMA2_GPIO_Port,DCMA2_Pin,GPIO_PIN_RESET)
							
#define DCMB1_GPIO(a)	if (a)	\
							HAL_GPIO_WritePin(DCMB1_GPIO_Port,DCMB1_Pin,GPIO_PIN_SET);\
							else		\
							HAL_GPIO_WritePin(DCMB1_GPIO_Port,DCMB1_Pin,GPIO_PIN_RESET)
							
#define DCMB2_GPIO(a)	if (a)	\
							HAL_GPIO_WritePin(DCMB2_GPIO_Port,DCMB2_Pin,GPIO_PIN_SET);\
							else		\
							HAL_GPIO_WritePin(DCMB2_GPIO_Port,DCMB2_Pin,GPIO_PIN_RESET)
							
#define STEP1_GPIO(a)	if (a)	\
							HAL_GPIO_WritePin(STEP1_PORT,STEP1_Pin,GPIO_PIN_SET);\
							else		\
							HAL_GPIO_WritePin(STEP1_PORT,STEP1_Pin,GPIO_PIN_RESET)
							
#define STEP2_GPIO(a)	if (a)	\
							HAL_GPIO_WritePin(STEP2_PORT,STEP2_Pin,GPIO_PIN_SET);\
							else		\
							HAL_GPIO_WritePin(STEP2_PORT,STEP2_Pin,GPIO_PIN_RESET)
							
#define STEP3_GPIO(a)	if (a)	\
							HAL_GPIO_WritePin(STEP3_PORT,STEP3_Pin,GPIO_PIN_SET);\
							else		\
							HAL_GPIO_WritePin(STEP3_PORT,STEP3_Pin,GPIO_PIN_RESET)
							
#define STEP4_GPIO(a)	if (a)	\
							HAL_GPIO_WritePin(STEP4_PORT,STEP4_Pin,GPIO_PIN_SET);\
							else		\
							HAL_GPIO_WritePin(STEP4_PORT,STEP4_Pin,GPIO_PIN_RESET)
							
#define RS485_GPIO(a)	if (a)	\
							HAL_GPIO_WritePin(RS485_GPIO_Port,RS485_Pin,GPIO_PIN_SET);\
							else		\
							HAL_GPIO_WritePin(RS485_GPIO_Port,RS485_Pin,GPIO_PIN_RESET)
							
//#define SDA_IO_IN      HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_7)







/* USER CODE END Private defines */

#ifdef __cplusplus
}
#endif

#endif /* __MAIN_H */

/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
